package com.rdgk.newtech.dao;

import com.alibaba.fastjson.JSONObject;

import java.util.List;

/**
 * @author: msun
 * @description: 关键词Dao层
 */
public interface KeywordDao {
    /**
     * 关键词列表
     */
    List<JSONObject> listKeyword(JSONObject jsonObject);

    /**
     * 统计关键词总数
     */
    int countKeyword(JSONObject jsonObject);

    /**
     * 搜索关键词列表项
     */
    List<JSONObject> listKeywordBySearch(JSONObject jsonObject);

    /**
     * 统计搜索关键词列表的结果总数
     */
    int countKeywordtBySearch(JSONObject jsonObject);

    /**
     * 统计某一关键词的总数，确保唯一性
     * 如果存在该关键词，并且is_deleted=0(未删除，则不允许增加)
     * 如果存在该关键词，并且is_deleted=1(已删除，则赋值is_deleted=0，并调用更新接口)
     */
    List<JSONObject> getKeywordCountByName(JSONObject jsonObject);
    
    /**
     * 新增关键词
     */
    int addKeyword(JSONObject jsonObject);
    
    /**
     * 更新关键词
     */
    int updateKeyword(JSONObject jsonObject);

    /**
     * 删除关键词
     */
    int deleteKeyword(JSONObject jsonObject);

    /**
     * 获取关键词主题列表项
     */
    List<JSONObject> listTopic(JSONObject jsonObject);

    List<JSONObject> listArea(JSONObject jsonObject);

    /**
     * 增加关键词主题列表项
     */
    int addTopic(JSONObject jsonObject);
    int addArea(JSONObject jsonObject);

    /**
     * 统计某一主题的总数，确保唯一性
     */
    List<JSONObject> getTopicCountByName(JSONObject jsonObject);
    List<JSONObject> getAreaCountByName(JSONObject jsonObject);
}
